﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Synchronization;

namespace SyncLib.Client
{
    public abstract class MonitorEvent
    {
        public static MonitorEvent _Monitor;
        public static MonitorEvent Monitor {
            get
            {
                if (_Monitor == null) _Monitor = new QuietMonitorEvent();
                return _Monitor;
            }
            set
            {
                _Monitor = value;
            }
        }

        public abstract void RaiseEvent(SyncEventType type,string icon, string message);

        public abstract void RaiseCommunicationEvent(SyncEventType type, string icon, string message);
        public abstract void SyncStateChange(SyncOrchestratorState state, string message);
        public abstract void Info(string message);
        
        
    }
    public class QuietMonitorEvent : MonitorEvent
    {
        public override void RaiseEvent(SyncEventType type, string icon, string message)
        {
            
        }

        public override void RaiseCommunicationEvent(SyncEventType type, string icon, string message)
        {
            
        }

        public override void SyncStateChange(SyncOrchestratorState state, string message)
        {
            
        }

        public override void Info(string message)
        {
            
        }
    }
    
    public enum SyncEventType
    {
        Info,
        Fatal,
        Debug,
        Warn
    }
    public enum RunMode
    {
        Manual,
        Automatic
    }
}
